package com.bookcloud.java21.chapter10.注解单成员注解109;

import java.lang.reflect.Method;

public class SingleMemberExample {

  @Test("测试用例1")
  public void testCase1() {
    System.out.println("执行了testCase1");
  }

  @Test("测试用例2")
  public void testCase2() {
    System.out.println("执行了testCase2");
  }

  @Test("测试用例3")
  public void testCase3() {
    System.out.println("执行了testCase3");
  }

  @Author(name = "张三")
  public void testCase4() {
    System.out.println("执行了testCase4");
  }

  public static void main(String[] args) {
    SingleMemberExample example = new SingleMemberExample();
    // 获取类上的所有方法
    Method[] methods = example.getClass().getDeclaredMethods();
    // 遍历所有方法
    for (Method method : methods) {
      System.out.println("=====================================");
      System.out.println("方法名：" + method.getName());
      // 检查方法是否被Test注解标注
      if (method.isAnnotationPresent(Test.class)) {
        // 获取Test注解
        Test test = method.getAnnotation(Test.class);
        // 打印注解值
        System.out.println("测试用例：" + test.value());
      }
      // 检查方法是否被Author注解标注
      if (method.isAnnotationPresent(Author.class)) {
        // 获取Author注解
        Author author = method.getAnnotation(Author.class);
        // 打印注解值
        System.out.println("作者：" + author.name());
      }
    }
  }
}
